Repository navigation
nixos/nordvpn: add meshnet support - #576413
different-error wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Thanks for contributing to the documentation.
Follow the documentation style guide, especially:
- Show, don’t tell. Start with a minimal working example. Explain after the code.
- Avoid meta-commentary. Don’t write "This section explains how to…".
- Use present tense, imperative mood, and active voice. For example: "Run the command," not "The user should run the following command."
- Avoid vague references like "this" when the referent is unclear. Write "This command creates a folder," not "This will create a folder."
- Be direct. Avoid "should", "might", "typically", and "usually".
- Cut filler words like "simply", "just", "easily", and "basically". Use "to" instead of "in order to".
For larger changes, such as adding or removing whole sections, ask the NixOS documentation team for review.
add7cf4 to
e09490b
Compare
e09490b to
0656322
Compare
|
@andersonjoseph @dimkNevidimk @getreu @ruffsl Hey folks, I can use your help. Meshnet has a lot of moving parts and I'd like to try to get this merged in sooner than later. If you don't mind, could you kindly test this PR and report back with your findings? Ty |
|
@novalkun could you also kindly conduct a manual verification of the PR? |
Tested 0656322 on real hardware (NixOS 26.05 + unstable): meshnet comes up, my iOS phone shows as a connected peer, ping by meshnet IP works, fileshare works both ways, and /etc/hosts stays untouched. nordvpn.cli build and nixosTests.nordvpn pass too. |
|
@SuperSandro since you reviewed #564752, would you mind reviewing this PR as well? We would greatly appreciate your feedback, as your review could help move this toward a merge sooner. Thank you! |
da253de to
273e920
Compare
|
Re-tested 273e920 (6.0.1) the same way: nordvpn.cli build and nixosTests.nordvpn pass, and on real hardware meshnet, peer ping and fileshare both ways work, /etc/hosts untouched. |
ef4f47a to
3d39402
Compare
novalkun
left a comment
There was a problem hiding this comment.
Now that #582148 bumped nordvpn to 6.0.2, its lib-versions.env expects libtelio 6.2.5 (libdrop stays at 9.0.0), so this needs a rebase and a libtelio bump. 6.2.5 changes Cargo.lock and telio-proto, so cargoHash needs updating and it's worth checking llt-proto-rev.patch still applies.
3d39402 to
41e25c4
Compare
|
Updated to libtelio 6.2.5. Verified the following:
@novalkun could you test the changes on your setup? |
novalkun
left a comment
There was a problem hiding this comment.
Built with libtelio 6.2.5: checkPhase passes and libtelio.so has no test/mock symbols.
|
This is broken potentially due to the pr related to #570938 is what it spits out for libtelio currently but https://github.com/NixOS/nixpkgs/pull/537108/changes may be useful to pick out any other potential ones. |
- build libdrop 9.0.0 from NordSecurity/libdrop Assisted-by: Claude Code (Claude Sonnet 5)
ty!! |
41e25c4 to
1f53f29
Compare
- build libtelio 6.2.5 from NordSecurity/libtelio - pin llt-proto to an unmerged rev that ships ens.proto Assisted-by: Claude Code (Claude Sonnet 5)
- wire libdrop and libtelio into the cli build inputs - patch nordvpn-linux to keep /etc/hosts read-only and to allow nordvpnd to reach a user's norduserd/fileshare sockets - update meta documentation: remove statements on meshnet and firewall Assisted-by: Claude Code (Claude Sonnet 5)
- add nordlynx to firewall trustedInterfaces, grant CAP_NET_RAW - extend the NixOS test to verify trusted interfaces and the new socket permissions - update nordvpn documentation to include information regarding meshnet Co-authored-by: novalkun <[email protected]> Assisted-by: Claude Code (Claude Sonnet 5)
1f53f29 to
ce7fbde
Compare
Setup
(presumes DEVICE connected to meshnet)
Incoming (presumes DEVICE denies PEER for incoming)
Fileshare (presumes DEVICE denies PEER for fileshare)
Routing (presumes DEVICE denies PEER for routing; PEER on a different network)
Local network (presumes PEER connected to DEVICE)
SSH
VPN Connection
@novalkun @getreu please verify meshnet and basic nordvpn functionality using this test protocol. You do not need to include the entire document in your comment: stating that everything works when tested per the protocol should work, or mention any sections you skipped. |
libtelioandlibdropinside thenordvpndirectory rather than as standalone packages.nordvpn-linux's lib-versions.env pins exact versions, so an independent,
automated bump of either library could silently desync from the
bindings nordvpn expects. Keeping them local keeps that version a
hand-maintained property of the consumer, with no risk of a name
collision against an unrelated standalone package either.
nordvpnd,norduserd, andnordfileshareto:--hosts-readonlyflag, which preventsnordvpndfromwriting to
/etc/hostsnorduserd/nordfilesharesockets to thenordvpngroup with permissions
0660, letting the unprivileged nordvpnd reach them--hosts-readonly flag, citing a UXcost from losing automatic hostname resolution for peers. See
meshnet enable fails under unprivileged nordvpnd (NixOS module) NordSecurity/nordvpn-linux#1648.
nordlynxto trusted interfaces.trusted-interface rule, and a non-member user's inability to reach
a group-gated
norduserd(ty @novalkun).Assisted-by: Claude Code (Claude Opus 5.5)
Manual Verification
configuration.nix
SSH-related configuration
Test protocol found in a below comment.
Things done
./result/bin/.nixpkgs-reviewon this PR. See nixpkgs-review usage.passthru.tests.